<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div>
        #promise.all()
        // Promise.all()方法用于将多个 Promise 实例，包装成一个新的 Promise 实例
        // let proall = Promise.all([p1,p2,....]);
        1）只有p1、p2、p3的状态都变成成功，proall的状态才会变成成功，此时p1、p2、p3的返回值组成一个数组，传递给proall的回调函数。
        2）只要p1、p2、p3之中有一个被rejected，proall的状态就变成rejected，此时第一个被reject的实例的返回值，会传递给proall的回调函数。
        之前的写法： new Promise(p1) 现在的写法： new Promisea.all([p1, p2, p3])
        现在，then中收到的成功的回调函数是一个数组
        .then(res = {
            res就是一个数组，里面包含p1 p2 p3返回的数据
        })

        #promise.race([p1,p2,p3..])
        // Promise.race()方法同样是将多个 Promise 实例，包装成一个新的 Promise 实例
        // Promise.race 只要有一个promise实例的状态确定了，那整个race的状态就确定了
        // 多个实例，谁先加载出来，就执行谁。
    </div>
</body>
</html>